The invention is related to Internet Protocol (IP) telephony systems. More specifically, the invention is related to systems and methods for improving the perceived quality of IP telephony communications.
Existing IP telephony systems allow users to place and receive telephone calls or to send and/or receive other types of communications, such as text messages, SMS messages, MMS messages and the like. The communications are transmitted, at least in part, by data packets that traverse a private and/or public data network.
For example, a calling party can place a telephone call to a called party using an IP telephony device that is coupled to a private or public data network. When the user requests that the call be placed, an IP telephony system receives the request and assists in setting up the call between the calling party's telephony device and the called party's telephony device. The called party's telephony device can also be an IP telephony device that is coupled to a private or public data network. Alternatively, the called party's telephony device could be an analog telephone that is coupled to a publically switched telephony network (PSTN). In still other instances, the called party's telephony device could be a cellular telephone or a mobile computing device with cellular telephone capabilities that is coupled to a cellular telephony network.
Once the call begins, the calling party's telephony device takes spoken audio input provided by the user and converts the spoken audio input into a stream of data packets that are transmitted over a data network. If the call has been placed to another IP telephony device, those data packets may be delivered to the called IP telephony device, and the called IP telephony device then utilizes the data packets to recreate the spoken audio input. If the call has been placed to an analog telephone or a cellular telephone, then one or more elements of the IP telephony system may convert the data packets sent from the calling IP telephony device back into analog signals that are passed along to a PSTN or cellular telephony system that connects the call to the called party. In other instances, the data packets generated by the calling IP telephony device may be passed along to an element of the PSTN or cellular telephony system, which then converts the digital data into a form that can be used by the called telephony device.
The calling party's IP telephony device typically uses a computer algorithm or piece of software known as a CODEC to convert an analog signal representative of the calling party's spoken audio input into a stream of digital data packets that are transmitted over the data network. The data packets are then converted back into an analog signal that can be used to reproduce the spoken audio input using a similar CODEC that is employed by the called party's IP telephony device, or by an element of the IP telephony system, the PSTN or the cellular network. Different CODECs can employ differing levels of compression, and therefore tend to offer varying levels of fidelity or sound quality. Generally, the greater the degree of compression, the lower the resulting sound quality.
When the digital data packets traverse the data network, some data packets may be lost between the calling party's IP telephony device, and the element responsible for converting the digital data packets back into an analog audio signal. Also, each individual data packet may traverse a very different path through the data network, particularly where the data network is the public Internet. As a result, the data packets often arrive at the receiving device out of order. The receiving device usually employs a data buffer to help re-assemble the stream of data packets back into the proper order before they are used by the CODEC to generate an analog audio signal that reproduces the spoken audio input. However, if a data packet is delayed too long, it will arrive too late to be re-inserted into its proper place in the stream, and it is therefore discarded.
The loss of data packets during transmission between two devices can have a significant impact on the sound quality or fidelity of the reproduced spoken audio input. The problem is magnified when a high degree of compression is employed by the CODECs, because each lost data packet represents a greater overall portion of the audio. It would be desirable to find a method of increasing the audio quality of the reproduced sound in those instances where lost data packets are having a noticeable impact on the sound quality of the reproduced audio.